package cn.com.bluemoon.daps.domp.api.factory;

import cn.com.bluemoon.daps.domp.api.UserService;
import feign.hystrix.FallbackFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.List;
import java.util.Map;

public class RemoteUserServiceFallbackFactory implements FallbackFactory<UserService> {

    private static final Logger log = LoggerFactory.getLogger(RemoteUserServiceFallbackFactory.class);


    @Override
    public UserService create(Throwable throwable) {
        log.error("domp服务调用用户服务失败:{}", throwable.getMessage());
        return new UserService() {
            /**
             * 判断是否登陆,是则返回用户账号
             *
             * @param token
             * @return
             */
            @Override
            public String isLoginUserWrapper(String token) {
                return null;
            }

            /**
             * 判断是否登陆SFA,是则返回用户账号
             *
             * @param token
             * @return
             */
            @Override
            public String isLoginUserSFA(String token) {
                return null;
            }

            /**
             * 通过天使获取帐号
             *
             * @param token
             * @return
             */
            @Override
            public String getAccountByAngel(String token) {
                return null;
            }

            /**
             * 通过SFA获取帐号
             *
             * @param token
             * @return
             */
            @Override
            public String getAccountBySFA(String token) {
                return null;
            }

            @Override
            public List<Map<String, Object>> getUserById(String userId) {
                return null;
            }

            /**
             * 通过userId获得用户信息
             *
             * @param userId
             * @return
             */
            @Override
            public List<Map<String, Object>> getUserInfoById(String userId) {
                return null;
            }

            /**
             * 根据userId获取token
             *
             * @param userId
             * @return
             */
            @Override
            public String getToken(String userId) {
                return null;
            }

            /**
             * 从天使中登陆
             *
             * @param username 用户名
             * @param password 加密后密码
             * @return
             */
            @Override
            public String loginAngel(String username, String password) {
                return null;
            }

            /**
             * 从DOMP中登陆后，通过UserService把token和username放入redis
             *
             * @param username 用户名
             * @param token    用户标识token
             * @return
             */
            @Override
            public String loginDOMP(String username, String token) {
                return null;
            }

            /**
             * 通过token检查用户是否为BMBI管理员，是管理员则返回管理员ID
             *
             * @param token 用户标识token
             * @return
             */
            @Override
            public String isAdminBMBI(String token) {
                return null;
            }

            /**
             * 用户登陆
             *
             * @param userName 用户名
             * @param passWord 密码
             * @throws Exception 注意：页面传过来的密码为AES加密后的密码，发送给天使的密码为DES加密后的密码，
             *                   保存在domp数据库中的的密码为md5加密后的密码
             *                   domp默认密码为tR4362do
             */
            @Override
            public String login(String userName, String passWord) {
                return null;
            }

            /**
             * 用户加密登陆
             *
             * @param userName 用户名
             * @param passWord 密码（经过加密的密码）
             */
            @Override
            public String encryptLogin(String userName, String passWord) {
                return null;
            }
        };
    }
}
